package com.project.service;

import com.github.pagehelper.PageInfo;
import com.project.bean.ProductBean;

import java.time.LocalDate;

/**
 * 商品业务接口
 *
 * @author lyl
 */
public interface IProductService {

    /**
     * 分页动态查询商品，同时统计商品选购数量，并分页展示
     *
     * @param pageNo        页码
     * @param productName   商品名
     * @param startDate     起始日期
     * @param endDate       结束日期
     * @param productStatue 商品状态
     * @return
     */
    PageInfo<ProductBean> findByPage(int pageNo, String productName, LocalDate startDate, LocalDate endDate, String productStatue);

    /**
     * 按商品id查询商品信息，需要连表查询售出的数量
     *
     * @param productId 商品id
     * @return 商品对象
     */
    ProductBean findByProductId(int productId);

    /**
     * 进行状态更新
     *
     * @param productId
     * @param productStatue
     */
    void updateProductStatue(int productId, String productStatue);

    /**
     * 根据id修改商品的单价（此举动不会影响之前商品的总价计算，但是会影响当前所在的购物车商品价格计算）
     *
     * @param productId
     * @param productPrice
     */
    void updateProductPrice(int productId, int productPrice);

    /**
     * 添加新的商品对象
     *
     * @param productBean
     */
    void addNewProduct(ProductBean productBean);
}
